#ifndef CTURNSCHEDULE_H_INCLUDED
#define CTURNSCHEDULE_H_INCLUDED

#include <map>
#include <vector>

class CDungeon;
class CPlayer;
class ITurnTaker
{
public:
    virtual void takeTurn() = 0;
};

class CTurnSchedule
{
public:
    static unsigned int getSize();
    static unsigned int getTicks();

    static void nextTurn();
    static void scheduleTurn(int interval, ITurnTaker* turnTaker);

private:
    // Theoretically, the game will break at 4294967295 Ticks
    static unsigned int Ticks;
    static std::map<int, std::vector<ITurnTaker*> > Schedule;
};

#endif

